Cloud or network-based computing is a type of computing that relies on sharing computing resources rather than having local servers or personal devices to handle applications. Different services or resources (e.g., servers, storage, and applications) can be delivered to a user via a web browser. A user may have one or more accounts with cloud or network-computing service providers to utilize different cloud or network-based services and resources.
Generally, a web application (“web app”) is a program that is written in a browser-executable language, for example, HTML5, JavaScript, and CSS, and is designed to be run within a web browser on a user's computing device. A web app that can run within the web browser may be either a “hosted web app” or a “packaged web app.” A hosted web app may be, for example, hosted on the Internet or other network, available as a URL, and accessed by users using a web browser. The hosted web app's components on the Internet may include, for example, a portion of a web site that itself may include one or more web pages and possibly some metadata that may be pertinent to a functionality of the web app. In contrast to the hosted web app, a packaged web app may be thought of as a web app—all of whose components are bundled in a package that can be downloaded (e.g., from a public or private app store) for local execution by the browser on the user's computing device. A packaged web app may be executed even when the user's computing device is offline i.e. without access to a network or the Internet.
Furthermore, “platform” apps are apps that are developed to operate in their own application containers outside of a web browser on the user's computing device. A platform app may interact with and take advantage of operating system features and other software that may be typically installed on user's computing device but are not available to web apps.
Like a packaged web app, a platform app may also be bundled in a package that can be downloaded (e.g., from a public or private app store) via a web browser for local installation and execution on the user's computing device. The packaged platform app, like a packaged web app, may also be written in HTML5, JavaScript, and CSS. Both kinds of packaged apps can load the same type of content: HTML documents with CSS and JavaScript. However, in contrast to the within-browser operation of a packaged web app (or a hosted web app), a packaged platform app is designed to be installed on the user's computing device and run outside of a browser tab directly from the computing device's hard drive.
Web apps are popular due to the ubiquity of web browsers, and the convenience of using a web browser from any available computing device (e.g., laptop computer, smartphone, personal or private digital assistant, tablets, notebook computer, etc.) that can connect to the Internet. Common web apps include webmail, online retail sales, online auctions, photograph editing or processing, wikis, etc. The web apps may be customized or personalized, for example, with software components (e.g., plugins, extensions, or add-ons) that add specific features or functionalities to basic versions of the web apps.
A user may have a personalized set of one or more web apps on his or her computing device. The web apps on the computing device may be maintained or serviced by a cloud computing service. The cloud computing service may, for example, update the personalized set of web apps and synchronize associated or related data. For example, cloud computing service may update or synchronize an inbox of a webmail application installed on the user's computing device with e-mails received since the user last opened the webmail application, the levels that have been completed in a game application, the new features or program codes of an application that may have become available, photographs or images that may have been uploaded to and/or edited by a photo viewing/editing application, etc.
When a user is using a previously-used computing device having his or her personalized set of web apps, traditional difference-based data synchronization of the web apps may provide a satisfactory user experience from a speed or time perspective. However, when the user connects to the Internet with a new computing device, which does not have his or her personalized set of web apps, to launch a particular web app or web apps, traditional difference-based data synchronization may take time to replicate data for all of the personalized set of web apps on the new computing device. Traditional difference-based synchronization may not provide a satisfactory user experience from a speed or time perspective. The user may have to wait until data for all of the personalized set of web apps is synchronized or replicated on the new computing device before the user can use the new computing device to launch the particular web app or web apps.